From: Michal Čihař <nijel@debian.org>
Subject: Zlib can return negative value, but gulong is unsigned, so it can not catch the error state.
--- a/src/lib/lib.cpp
+++ b/src/lib/lib.cpp
@@ -751,12 +751,12 @@
 		
 	idxdatabuf = (gchar *)g_malloc(fsize);
 		
-	gulong len = gzread(in, idxdatabuf, fsize);
+	ssize_t len = gzread(in, idxdatabuf, fsize);
 	gzclose(in);
 	if (len < 0)
 		return false;
 
-	if (len != fsize)
+	if (len != (ssize_t)fsize)
 		return false;
 
   wordlist.resize(wc+1);
